Various data storage systems have been developed that include flash memory devices that are written by applying a series of voltage pulses to the gate of flash cells. These voltage pulses each induce electrons to tunnel from the channel into a floating gate. The tunneling of electrons is not entirely deterministic. Thus, while the average number of electrons added to the gate via the tunneling process can be controlled by varying the voltage and duration of pulses, the precise number of electrons is not necessarily determinable. Because of this, flash memory cells may be written over the course of multiple pulses and the cell checked against a switching threshold after each pulse. Such an approach involves a balance between taking a considerable amount of time to write a number of small voltage pulses exhibiting relatively fine granularity and thus providing a close approximation of the needed number of tunneling electrons, or taking a smaller amount of time to write fewer, but larger voltage pulses which may result in excessive damage to the device due to the introduction of too many tunneling electrons.
Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for writing data to a storage device.